home *** CD-ROM | disk | FTP | other *** search
/ FM Towns: Free Software Collection 4 / FM Towns Free Software Collection 4 - Disc 2.iso / heat_tst / nif_mss.cfg < prev    next >
Text File  |  1991-10-19  |  42KB  |  1,531 lines

  1. /*********************************************************************
  2. /*
  3. /*    nif_mss.cfg : NIFTY-Serve Menu Service System
  4. /*
  5. /*    TABSIZE = 4;
  6. /*
  7. /*    1991. 8.30    ver.0.99    By TARO
  8. /*    1991. 9. 1    ver.0.99b    By TARO
  9. /*    1991.10. 1    ver.0.99c    By TARO
  10. /*
  11. /*********************************************************************
  12.  
  13. /*====================================================================
  14. /*    各メニューレベルに応じてジャンプ
  15. /*
  16. HOST_menu {
  17.     x0 = 512;
  18.     y0 = 40;
  19.     if ( MENU_LEVEL = 0 )
  20.     {    mss_top_menu()
  21.     } else if ( MENU_LEVEL = 10 )
  22.     {    mss_mail_menu()
  23.     } else if ( MENU_LEVEL = 20 )
  24.     {    mss_forum_menu()
  25.     } else if ( MENU_LEVEL = 21 )
  26.     {    mss_forum_cmd()
  27.     } else if ( MENU_LEVEL = 22 )
  28.     {    mss_room_cmd()
  29.     } else if ( MENU_LEVEL = 23 )
  30.     {    mss_bul_cmd()
  31.     } else if ( MENU_LEVEL = 24 )
  32.     {    mss_lib_cmd()
  33. #    } else if ( MENU_LEVEL = 25 )    /* リザーブ
  34. #    {    mss_ann_cmd()
  35.     } else if ( MENU_LEVEL = 26 )
  36.     {    mss_rtc_cmd()
  37.     } else if ( MENU_LEVEL = 27 )
  38.     {    mss_opt_cmd()
  39.     } else if ( MENU_LEVEL = 30 )
  40.     {    mss_hp_menu()
  41.     } else if ( MENU_LEVEL = 40 )
  42.     {    mss_service_menu()
  43.     }
  44.     mos_cursor(81)                    /* ノーマル
  45. }
  46.  
  47. mss_top_key {                            /* メニュー再呼び出し
  48.     /*   [PF4] */
  49.     key("\\k6000")
  50. }
  51.  
  52. mss_sysmes {                            /* システム行メッセージ
  53.     syslin_puts(C_CYAN,C_MBLACK,"NIFTY-Serve MSS: version 0.99")
  54. }
  55.  
  56. mss_err {                                /* エラー表示
  57.     syslin_puts(C_RED,C_MBLACK,"NIFTY-Serve MSS: ERROR")
  58.     wind_close()
  59.     wind_size_set(296,40,336,104)
  60.     wind_open2("NIFTY-Serve MSS : ERROR")
  61.     wind_str_color(C_HRED)
  62.     echo("\(MSG)")
  63.     wait(10)
  64.     wind_close()
  65.     wind_init()
  66. }
  67.  
  68. mss_chk_exp {
  69.     if ( NIF_MSS_FLG = 0 )                /* 初回
  70.     {    term_switch(1,">")
  71.         bk = 0;
  72.         term_puts("SET MENU OFF\r")
  73.         while ( bk = 0 )
  74.         {    wait(1)
  75.             if ( VAL ! 0 ) { bk = 1; }
  76.             term_switch(1,">SET MENU OFF",">")
  77.             if ( VAL = 1 )
  78.             {    bk = 1;
  79.             }
  80.         }
  81.         term_puts("SET PAGE OFF\r")
  82.         NIF_MSS_FLG = 1;
  83.     }
  84. }
  85.  
  86. /*--------------------------------------------------------------------
  87. /*    プロンプトに応じてコマンドを実行する
  88. /*
  89. /*    in:    PROM        プロンプト
  90. /*        CHG            モード変更コマンド
  91. /*        CMD            実行コマンド
  92. /*
  93. mss_chk_prompt {
  94.     term_switch(3,PROM,">")
  95.     if ( VAL = 0 )                        /* Prompt OK
  96.     {    term_puts( CMD )
  97.     } else if ( VAL = 1 )                /* ">"
  98.     {    mos_cursor(82)                    /* 時計カーソル
  99.         term_puts( CHG )
  100.         term_switch(30,PROM )
  101.         if ( VAL < 0 ) { mss_top_key(); return }
  102.         term_puts( CMD )
  103.     } else if ( VAL < 0 )
  104.     {    mss_top_key()
  105.         return
  106.     }
  107. }
  108.  
  109. /*--------------------------------------------------------------------
  110. /*    サービス終了
  111. /*
  112. mss_off {
  113.     NIF_MSS_FLG = 0;
  114.     term_puts("OFF\r")
  115.     wind_close()
  116.     wind_size_set(288,40,344,80)
  117.     echo("\n  NIFTY-Serve Menu Service System\n    ご利用ありがとうございました。")
  118.     wait(3)
  119.     term_switch(30,"*","NO CARRIER")
  120.     if ( VAL = 0 )
  121.     {    term_puts("OFF\r")
  122.     }
  123.     wait(1)
  124.     wind_close()
  125.     wind_init()
  126. }
  127.  
  128. /*********************************************************************
  129. /*    トップメニュー
  130. /*********************************************************************
  131. mss_top_menu {
  132.     mss_sysmes()
  133.     menu2_select(x0,y0, "TOP MENU",
  134.         "F:Forum   フォーラム"      ,    # 0
  135.         "M:Mail    電子メール"      ,    # 1
  136.         "H:HP      ホームパーティ"  ,    # 2
  137.         "S:Service サービスコマンド",    # 3
  138.         "O:Off     NIFTY-Serve 終了",    # 4
  139.         " ",
  140.         "C:Config  MSS 各種設定"        # 6
  141.     )
  142.     if ( VAL = 0 )                        /* FORUM
  143.     {    MENU_LEVEL = 20;
  144.         mss_top_key()
  145.     } else if ( VAL = 1 )                /* MAIL
  146.     {    syslin_puts(C_GREEN,C_MBLACK,"MAIL:")
  147.         MENU_LEVEL = 10;
  148.         term_puts("MAIL\r")
  149.         mss_top_key()
  150.     } else if ( VAL = 2 )                /* HP
  151.     {    syslin_puts(C_GREEN,C_MBLACK,"HP:")
  152.         mos_cursor(82)                    /* 時計カーソル
  153.         MENU_LEVEL = 30;
  154.         term_puts("GO HP\r")
  155.         wait(3)
  156.         term_switch(30,">",">")
  157.         if ( VAL < 0 ) { return }
  158.         term_puts("1\r")
  159.         mss_top_key()
  160.     } else if ( VAL = 3 )                /* サービス
  161.     {    MENU_LEVEL = 40;
  162.         mss_top_key()
  163.     } else if ( VAL = 4 )                /* OFF 終了
  164.     {    menu_yes_no(x0,y0,C_YELLOW,"    本当に終了しますか?    ")
  165.         if ( VAL > 0 )
  166.         {    mss_off()
  167.         } else
  168.         {    mss_top_key()
  169.         }
  170.     } else if ( VAL = 6 )                /* MSS 各種設定
  171.     {    mss_setup()
  172.         host_top_key()
  173.     }
  174. }
  175.  
  176. /*++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++
  177. /*    MSS 各種設定
  178. /*
  179. mss_setup {
  180.     bk = 0;
  181.     while ( bk = 0 )
  182.     {    menu2_select(x0,y0,"NIFTY-Serve MSS : 各種設定",
  183.             "9:top menu トップメニューに戻る"          ,
  184.             "D:Download ディレクトリ [\(_NIF_DOWN_PATH)]"   ,
  185.             "H:HP       HP ID & PassWord"               
  186.         )
  187.         if ( VAL < 1 )
  188.         {    bk = 1;
  189.         } else if ( VAL =  1 )
  190.         {    menu_input("_NIF_DOWN_PATH",128,x0,y0,C_CYAN,"ダウンロード用のディレクトリは?" )
  191.             if ( VAL > -1 )
  192.             {    if ( _NIF_DOWN_PATH ! "" )
  193.                 {    strlen(_NIF_DOWN_PATH)
  194.                     LEN = VAL;
  195.                     dec(LEN)
  196.                     strmid("TMP",_NIF_DOWN_PATH,LEN)
  197.                     if( TMP ! "\\" )
  198.                     {    _NIF_DOWN_PATH = "\(_NIF_DOWN_PATH)\\"
  199.                     }
  200.                 }
  201.             }
  202.         } else if ( VAL = 2 )
  203.         {    mss_hp_set()
  204.         }
  205.     }
  206. }
  207.  
  208.  
  209. /*********************************************************************
  210. /*    電子メール・メニュー
  211. /*********************************************************************
  212. mss_mail_menu {
  213.     mss_sysmes()
  214.     MAIL = ""
  215.     PROM = "MAIL>"
  216.     CHG = "MAIL\r"
  217.     term_switch(1,"action:",">","MAIL>")
  218.     if ( VAL = 0 )
  219.     {    mss_mail_act()
  220.         return
  221.     }
  222.     menu2_select(x0,y0, "電子メール",
  223.         "9:top menu トップメニューに戻る"  ,    # 0
  224.         "R:Read     メールを読む"    ,    # 1
  225.         "N:read New 新着メールを読む",    # 2
  226.         "L:RVL,SDL  送・受信簿"      , # 3
  227.                                   " ",
  228.         "W:Compose  メールを出す"    ,    # 5
  229.         "K:Delete   削除"            ,    # 6
  230.         "U:Upload   アップロード"    ,    # 7
  231.         "D:Down     ダウンロード"    ,    # 8
  232.         "S:Store    保存"            ,    # 9
  233.         "F:Forward  転送"            ,    #10
  234.                                   " ",
  235.         "A:Action   返信コマンド"    ,    #12
  236.         "B:Break    中断(ブレーク送出)"      #13
  237.     )
  238.     if ( VAL = 0 )
  239.     {    MENU_LEVEL = 0;
  240.         mss_top_key()
  241.     } else if ( VAL = 1 )                /* READ 一覧
  242.     {    CMD = "READ\r"
  243.         mss_chk_prompt()
  244.         mos_cursor(82)                    /* 時計カーソル
  245.         wait(1)
  246.         term_switch(30,">", "◆")
  247.         if ( VAL = 0 )
  248.         {    menu_input("MAIL",80,x0,y0,C_CYAN,"メール番号は?")
  249.             if ( VAL  < 0 ) { mss_top_key(); return }
  250.             if ( MAIL = "") { mss_top_key(); return }
  251.             term_puts("\(MAIL)\r")        /* 番号送信
  252.         }
  253.     } else if ( VAL = 2 )                /* READ NEW 未読メールを読む
  254.     {    CMD = "READ NEW\r"
  255.         mss_chk_prompt()
  256.         mss_top_key()
  257.     } else if ( VAL = 3 )                /* 送・受信簿
  258.     {    menu2_select(x0,y0,"★送・受信簿",
  259.             "R:RVL  受信簿",
  260.             "S:SDL  送信簿"
  261.         )
  262.         if ( VAL = 0 )
  263.         {    term_puts("RVL\r")
  264.         } else if ( VAL =1 )
  265.         {    term_puts("SDL\r")
  266.         }
  267.         mss_top_key()
  268.     } else if ( VAL = 5 )                /* 書き込み
  269.     {    CMD = "COM\r"
  270.         mss_chk_prompt()
  271.     } else if ( VAL = 6 )                /* 削除    
  272.     {    menu_input("MAIL",80,x0,y0,C_CYAN,"削除するメール番号は?")
  273.         if ( VAL  < 0 ) { mss_top_key(); return }
  274.         if ( MAIL = "") { mss_top_key(); return }
  275.         CMD = "DELETE \(MAIL)\r"
  276.         mss_chk_prompt()
  277.     } else if ( VAL = 7 )                /* アップロード
  278.     {    CMD = "UPLOAD\r";
  279.         mss_chk_prompt()
  280.     } else if ( VAL = 8 )                /* ダウンロード
  281.     {    menu_input("MAIL",80,x0,y0,C_CYAN,"ダウンするメール番号は?")
  282.         if ( VAL  < 0 ) { mss_top_key(); return }
  283.         if ( MAIL = "") { mss_top_key(); return }
  284.         CMD = "DOWN \(MAIL)\r"
  285.         mss_chk_prompt()
  286.     } else if ( VAL = 9 )                /* STORE 保存
  287.     {    CMD = "STORE\r"
  288.         mss_chk_prompt()
  289.     } else if ( VAL = 10 )                /* FORWARD 転送
  290.     {    CMD = "FORWARD\r"
  291.         mss_chk_prompt()
  292.     } else if ( VAL = 12 )                /* 返信コマンド    */
  293.     {    term_switch(1,"action:","MAIL>",">" )
  294.         if ( VAL = 0 )
  295.         {    mss_mail_act()
  296.         } else
  297.         {    MSG = "現状態では実行できません。"
  298.             mss_err()
  299.             mss_top_key()
  300.         }
  301.     } else if ( VAL = 13 )                /* Break
  302.     {    /* [SHIFT]+[PF9] [PF4]    
  303.         key("\\k6504\\k6000")
  304.     }
  305. }
  306. mss_mail_act {
  307.     menu2_select(x0,y0,"★MAIL ACTION",
  308.         "D:Delete  削除 (+転送,+返信)",
  309.         "S:Save    保存",
  310.         "R:Reply   返信",
  311.         "F:Forward 転送",
  312.         "P:STORE   パーソナルファイルに保存"
  313.     )
  314.     if ( VAL = 0 )                /* Delete
  315.     {    menu2_select(x0,y0,"★MAIL DELETE",
  316.             "K:Delete  削除",
  317.             "D:DR      削除+返信",
  318.             "F:DF      削除+転送"
  319.         )
  320.         if      ( VAL = 0 ) { term_puts("DELETE\r"); }
  321.         else if ( VAL = 1 ) { term_puts("DR\r"); }
  322.         else if ( VAL = 2 ) { term_puts("DF\r"); }
  323.         else { mss_top_key(); return (-1); }
  324.     } else if ( VAL = 1 )        /* 保存
  325.     {    term_puts("SAVE\r")
  326.         mss_top_key()
  327.         return (-1);
  328.     } else if ( VAL = 2 )        /* 返信
  329.     {    term_puts("REPLAY\r")
  330.     } else if ( VAL = 3 )        /* 転送
  331.     {    term_puts("FORWARD\r")
  332.     } else if ( VAL = 4 )        /* パーソナルファイル保存
  333.     {    term_puts("STORE\r")
  334.     } else
  335.     {    mss_top_key();
  336.         return (-1);
  337.     }
  338.     wait(1)
  339.     return (0);
  340. }
  341.  
  342. /*********************************************************************
  343. /*    フォーラム選択メニュー    (LEVEL 20)
  344. /*
  345. mss_forum_menu {
  346.     mss_sysmes()
  347.     menu2_select(x0,y0, "フォーラム選択",
  348.         "9:top menu  トップメニューに戻る",
  349.         "M:Menu      フォーラムメニュー"  ,
  350.         "G:Go        GO コマンド",
  351.         " ",
  352.         "T:TOWNS     TOWNS 関係"          ,
  353.         "F:FM        FM 関係"             ,
  354.         "S:Software  ソフトウェア関係"    ,
  355.         "H:Hardware  ハードウェア関係"    ,
  356.         "A:Amusement 趣味・娯楽"          ,
  357.         "E:ETC       その他"
  358.     )
  359.     if ( VAL = 0 )
  360.     {    MENU_LEVEL = 0;
  361.         mss_top_key()
  362.     } else if ( VAL = 1 )
  363.     {    /* コマンド    */
  364.         MENU_LEVEL = 21;
  365.         mss_top_key()
  366.     } else if ( VAL = 2 )                /* GO
  367.     {    menu_input("FORUM",9,x0,y0,C_CYAN, "フォーラム名は?")
  368.         if ( VAL < 0 )    { mss_top_key(); return }
  369.         if ( FORUM = "" ) { mss_top_key(); return }
  370.         mss_forum_go()
  371.         mss_top_key();
  372.     } else if ( VAL = 4 )                /* TOWNS 関係
  373.     {    menu2_select(x0,y0,"★フォーラム:TOWNS",
  374.             "1:FTOWNS1  FMTOWNS フォーラム1 "              ,
  375.             "2:FTOWNS2  FMTOWNS フォーラム2 (ビジュアル通信) " 
  376.             )
  377.         if      ( VAL = 0 ) { FORUM = "FTOWNS1"; mss_forum_go(); }
  378.         else if ( VAL = 1 ) { FORUM = "FTOWNS2"; mss_forum_go(); }
  379.         mss_top_key()
  380.     } else if ( VAL = 5 )                /* FM 関係
  381.     {    menu2_select(x0,y0,"★FM 関係フォーラム"    ,
  382.             "I:FFMINFO  FMフォーラム(総合案内)"   ,
  383.             "U:FFMUSER  FMフォーラム(ユーザー館)" ,
  384.             "P:FFMPRO   FMフォーラム(プロフェッショナル) ",
  385.             "H:FFMHOB   FMフォーラム(ホビー館)"   ,
  386.             "A:FFMAV    FMフォーラム(音楽・映像館)"
  387.             )
  388.         if      ( VAL = 0 ) { FORUM = "FFMINFO"; mss_forum_go(); }
  389.         else if ( VAL = 1 ) { FORUM = "FFMUSER"; mss_forum_go(); }
  390.         else if ( VAL = 2 ) { FORUM = "FFMPRO" ; mss_forum_go(); }
  391.         else if ( VAL = 3 ) { FORUM = "FFMHOB" ; mss_forum_go(); }
  392.         else if ( VAL = 4 ) { FORUM = "FFMAV"  ; mss_forum_go(); }
  393.         mss_top_key()
  394.     } else if ( VAL = 6 )                /* ソフトウェア
  395.     {    menu2_select(x0,y0,"★フォーラム:ソフトウェア",
  396.             "9:FOS9     OS-9フォーラム"         ,
  397.             "U:FUNIX    UNIXフォーラム"         ,
  398.             "C:FC       C言語フォーラム"       ,
  399.             "L:FLABO    ソフトウェア工房 "      ,
  400.             "M:FGALM    FGAL・総合"             ,
  401.             "V:FGALAV   FGAL・AV工房"           ,
  402.             "G:FGALAG   FGAL・AVギャラリー"     ,
  403.             "H:FGALAT   FGAL・AVシアター "      ,
  404.             "A:FGALAM   FGAL・アミューズメント" ,
  405.             "P:FGALAP   FGAL・アプリケーション" ,
  406.             "B:FGALBT   FGAL・ベストツール"     ,
  407.             "S:FGALST   FGAL・スーパーツール"   ,
  408.             "W:FGALSW   FGAL・シェアウェア"     ,
  409.             "T:FGALTM   FGAL・通信環境"         ,
  410.             "O:FGALOFF  FGAL・オフライン"
  411.             )
  412.         if      ( VAL = 0 ) { FORUM = "FOS9"   ; mss_forum_go(); }
  413.         else if ( VAL = 1 ) { FORUM = "FUNIX"  ; mss_forum_go(); }
  414.         else if ( VAL = 2 ) { FORUM = "FC"     ; mss_forum_go(); }
  415.         else if ( VAL = 3 ) { FORUM = "FLABO"  ; mss_forum_go(); }
  416.         else if ( VAL = 4 ) { FORUM = "FGALM"  ; mss_forum_go(); }
  417.         else if ( VAL = 5 ) { FORUM = "FGALAV" ; mss_forum_go(); }
  418.         else if ( VAL = 6 ) { FORUM = "FGALAG" ; mss_forum_go(); }
  419.         else if ( VAL = 7 ) { FORUM = "FGALAT" ; mss_forum_go(); }
  420.         else if ( VAL = 8 ) { FORUM = "FGALAM" ; mss_forum_go(); }
  421.         else if ( VAL = 9 ) { FORUM = "FGALAP" ; mss_forum_go(); }
  422.         else if ( VAL =10 ) { FORUM = "FGALBT" ; mss_forum_go(); }
  423.         else if ( VAL =11 ) { FORUM = "FGALST" ; mss_forum_go(); }
  424.         else if ( VAL =12 ) { FORUM = "FGALSW" ; mss_forum_go(); }
  425.         else if ( VAL =13 ) { FORUM = "FGALTM" ; mss_forum_go(); }
  426.         else if ( VAL =14 ) { FORUM = "FGALOFF"; mss_forum_go(); }
  427.         mss_top_key()
  428.     } else if ( VAL = 7 )
  429.     {    menu2_select(x0,y0,"★フォーラム:ハードウェア",
  430.             "I:FIBMPRO  IBM Professionals Forum " ,
  431.             "S:FSHARP   シャープUser'sフォーラム "
  432.         )
  433.         if      ( VAL = 0 ) { FORUM = "FIBMPRO" ; mss_forum_go(); }
  434.         else if ( VAL = 1 ) { FORUM = "FSHARP"  ; mss_forum_go(); }
  435.         mss_top_key()
  436.     } else if ( VAL = 8 )
  437.     {    /* 趣味・娯楽    */
  438.         menu2_select(x0,y0,"★フォーラム:趣味・娯楽",
  439.             "M:FMIDIUSR  MIDIユーザーフォーラム"      ,
  440.             "D:FMIDIDAT  MIDIデーターフォーラム"      ,
  441.             "S:FSEGA     SEGA Forum"                  ,
  442.             "C:FCGAMEP   パソコンゲームフォーラム"    ,
  443.             "G:FCGAMEM   ゲームマシンフォーラム"
  444.         )
  445.         if      ( VAL = 0 ) { FORUM = "FMIDIUSR"; mss_forum_go(); }
  446.         else if ( VAL = 1 ) { FORUM = "FMIDIDAT"; mss_forum_go(); }
  447.         else if ( VAL = 2 ) { FORUM = "FSEGA"   ; mss_forum_go(); }
  448.         else if ( VAL = 3 ) { FORUM = "FCGAMEP" ; mss_forum_go(); }
  449.         else if ( VAL = 4 ) { FORUM = "FCGAMEM" ; mss_forum_go(); }
  450.         mss_top_key()
  451.     } else if ( VAL = 9 )
  452.     {    menu2_select(x0,y0,"★フォーラム:その他",
  453.             " :何もなし…"
  454.         )
  455.         mss_top_key()
  456.     }
  457. }
  458.  
  459. mss_forum_go {
  460.     syslin_puts(C_GREEN, C_MBLACK, "GO \(FORUM)")
  461.     mos_cursor(82)                        /* 時計カーソル
  462.     MENU_LEVEL = 21;
  463.     STR_CHK = "入会手続"
  464.     STR_FLG = 0;
  465.     term_puts("GO \(FORUM)\r")
  466.     bk = 0;
  467.     while ( bk = 0 )
  468.     {    wait(1)
  469.         if ( VAL ! 0 ) { bk = 1; }
  470.         term_instr(1,"GO",">", ">" )
  471.         if ( VAL > 0 )
  472.         {    term_switch(1,">","FORUM>")
  473.             if ( VAL > -1 )
  474.             {    bk = 1;
  475.             }
  476.         }
  477.     }
  478.     STR_CHK = ""
  479.     if ( STR_FLG ! 0 )
  480.     {    MSG = "このフォーラムには入会していません。"
  481.         mss_err()
  482.         MENU_LEVEL = 20;
  483.         return
  484.     }
  485.     term_switch(30,">","FORUM>")
  486.     if ( VAL = 0 )                        /* ">"
  487.     {    term_puts("SET MENU OFF\r")
  488.         bk = 0;
  489.         while ( bk = 0 )
  490.         {    wait(1)
  491.             if ( VAL ! 0 ) { bk = 1; }
  492.             term_switch(1,">SET",">","FORUM>")
  493.             if ( VAL > 0 )
  494.             {    bk = 1;
  495.             }
  496.         }
  497.         term_puts("SET PAGE OFF\r")
  498.         bk = 0;
  499.         while ( bk = 0 )
  500.         {    wait(1)
  501.             if ( VAL ! 0 ) { bk = 1; }
  502.             term_switch(1,">SET",">","FORUM>")
  503.             if ( VAL > 0 )
  504.             {    bk = 1;
  505.             }
  506.         }
  507.         term_switch(1,">","FORUM>")
  508.         if ( VAL = 0 )    /* MENU OFF にしても"FORUM>"にならない    
  509.         {    MSG = "直接入れないフォーラムです。"
  510.             mss_err()
  511.             MENU_LEVEL = 20;
  512.             return
  513.         }
  514.     }
  515. }
  516.  
  517. /*====================================================================
  518. /*    フォーラム (LEVEL 21)
  519. /*
  520. mss_forum_cmd {    /* LEVEL 21    */
  521.     mss_sysmes()
  522.     menu2_select(x0,y0, "フォーラム",
  523.         "F:select フォーラム選択に戻る",
  524.         "M:Mes    未読を読む"     ,
  525.         "C:Confer 会議室"         ,
  526.         "B:BBS    電子掲示板"     ,
  527.         "L:Lib    データライブラリ"     ,
  528.         "A:Ann    案内を見る"     ,
  529.         " "                       ,
  530.         "U:Ust    フォーラム利用者表示",
  531.         "S:Send   Sendを送る"     ,
  532.         "R:Rtc    リアルタイム会議室"   ,
  533.         "M:syM    シスオペ宛メール"  ,
  534.         "T:seT    一時 設定変更"  ,
  535.         "O:Opt    オプション設定" ,
  536.     )
  537.     if ( VAL = 0 )                        /* フォーラムメニューに戻る
  538.     {    MENU_LEVEL = 20;
  539.         mss_top_key()
  540.     } else if ( VAL = 1 )                /* 会議室の未読を読む
  541.     {    NIFTY_MES()
  542.         mss_top_key()
  543.     } else if ( VAL = 2 )                /* 会議室コマンド
  544.     {    MENU_LEVEL = 22;
  545.         term_puts("MES\r")
  546.         mss_top_key()
  547.     } else if ( VAL = 3 )                /* 電子掲示板
  548.     {    MENU_LEVEL = 23;
  549.         term_puts("BUL\r")
  550.         mss_top_key()
  551.     } else if ( VAL = 4 )                /* データライブラリ
  552.     {    MENU_LEVEL = 24;
  553.         term_puts("LIB\r")
  554.         mss_top_key()
  555.     } else if ( VAL = 5 )                /* フォーラム案内
  556.     {    syslin_puts(C_GREEN,C_MBLACK,"ANN:")
  557.         mos_cursor(82)                    /* 時計カーソル
  558.         term_puts("ANN\r")
  559.         term_switch(30,"情報","◆")
  560.         if ( VAL ! 0 ) { mss_top_key();return }
  561.         term_switch(30,">")
  562.         if ( VAL ! 0 ) { mss_top_key();return }
  563.         ANN = ""
  564.         menu_input("ANN",80,x0,y0,C_CYAN,"見たい情報番号は?")
  565.         if ( VAL < 0  ) { mss_top_key();return }
  566.         if ( ANN = "" ) { mss_top_key();return }
  567.         term_puts("\(ANN)\r")
  568.     } else if ( VAL = 7 )                /* フォーラム利用者を調べる
  569.     {    NIFTY_UST(0)
  570.         mss_top_key()
  571.     } else if ( VAL = 8 )                /* Send
  572.     {    menu_input("SEND_ID",9, x0,y0, C_CYAN, "SEND先のIDは?")
  573.         if ( VAL < 0 )      { mss_top_key();return }
  574.         if ( SEND_ID = "" ) { mss_top_key();return }
  575.         menu_input("SEND_MSG",256,x0,y0,C_CYAN,"メッセージは?")
  576.         if ( VAL < 0 )      { mss_top_key();return }
  577.         if ( SEND_MSG = "" ) { mss_top_key();return }
  578.         term_puts("SEND \(SEND_ID) \(SEND_MSG)\r")
  579.         mss_top_key()
  580.     } else if ( VAL = 9 )                /* リアルタイム会議
  581.     {    MENU_LEVEL = 26;
  582.         term_puts("RTC\r")
  583.         menu2_select(x0,y0,"★チャンネルは?",
  584.             "1: チャンネル 1 ",
  585.             "2: チャンネル 2 "
  586.         )
  587.         if ( VAL = 0 )
  588.         {    term_puts("1\r")
  589.             mss_top_key()
  590.         } else
  591.         {    term_puts("2\r")
  592.             mss_top_key()
  593.         }
  594.     } else if ( VAL = 10 )                /* システムオペ宛メール
  595.     {    term_puts("SYM\r")
  596.     } else if ( VAL = 11 )                /* 設定一時変更    */
  597.     {    menu2_select(x0,y0,"★フォーラム設定一時変更",
  598.             "1:Page   ページ 制御 ON"     ,
  599.             "2:Page   ページ 制御 OFF"    ,
  600.             "3:Menu   メニュー表示 する"  ,
  601.             "4:Menu   メニュー表示 しない",
  602.             "5:Send   SEND 受け付け"      ,
  603.             "6:Send   SEND 禁止"
  604.         )
  605.         if      ( VAL = 0 ) { term_puts("SET PAGE ON\r" ) }
  606.         else if ( VAL = 1 ) { term_puts("SET PAGE OFF\r") }
  607.         else if ( VAL = 2 ) { term_puts("SET MENU ON\r" ) }
  608.         else if ( VAL = 3 ) { term_puts("SET MENU OFF\r") }
  609.         else if ( VAL = 4 ) { term_puts("SET SEND ON\r" ) }
  610.         else if ( VAL = 5 ) { term_puts("SET SEND OFF\r") }
  611.         mss_top_key()
  612.     } else if ( VAL = 12 )                /* オプション
  613.     {    MENU_LEVEL = 27;
  614.         term_puts("OPT\r")
  615.         mss_top_key()
  616.     }
  617. }
  618.  
  619. /*--------------------------------------------------------------------
  620. /*    会議室選択サブルーチン
  621. /*         in:    TITLE
  622. /*        out:    ROOM
  623. /*
  624. mss_room_select {
  625.     menu_select(x0,y0,TITLE,
  626.         "-会議室 1-",
  627.         "-会議室 2-",
  628.         "-会議室 3-",
  629.         "-会議室 4-",
  630.         "-会議室 5-",
  631.         "-会議室 6-",
  632.         "-会議室 7-",
  633.         "-会議室 8-",
  634.         "-会議室 9-",
  635.         "-会議室10-",
  636.         "-会議室11-",
  637.         "-会議室12-",
  638.         "-会議室13-",
  639.         "-会議室14-",
  640.         "-会議室15-",
  641.         "-会議室16-",
  642.         "-会議室17-",
  643.         "-会議室18-",
  644.         "-会議室19-",
  645.         "-会議室20-"
  646.     )
  647.     ROOM = VAL;
  648.     if ( ROOM > -1 )
  649.     {    inc(ROOM)
  650.     }
  651. }
  652.  
  653. /*====================================================================
  654. /*    会議室コマンド (LEVEL 22)
  655. /*
  656. mss_room_cmd {                            /* LEVEL 22
  657.     mss_sysmes()
  658.     ROOM = ""
  659.     menu2_select( x0,y0, "会議室コマンド",
  660.         "F:Forum フォーラムメニュー"  ,
  661.         "X:RX    会議室移動" ,
  662.         "E:Mes   会議室一覧" ,
  663.         "M:Mode  モード変更" ,
  664.         " ",
  665.         "1:next  リターンキー"     ,
  666.         "R:REF   コメントを読む" ,
  667.         "O:RO    元の発言"   ,
  668.         "N:No.   番号指定"   ,
  669.         "D:Down  ダウンロード"   ,
  670.         " ",
  671.         "W:Write 書込・削除" ,
  672.         "4:SMail メールを出す"  ,
  673.         " ",
  674.         "T:Title タイトル表示"   ,
  675.         "C:RC    未読設定"   ,
  676.         "B:Break 中断"        
  677.     )
  678.  
  679.     if ( VAL = 0 )
  680.     {    MENU_LEVEL = 21;
  681.         mss_top_key()
  682.     } else if ( VAL = 1 )                /* 会議室移動
  683.     {    TITLE = "会議室移動"
  684.         syslin_puts(C_GREEN,C_MBLACK,"会議室移動:")
  685.         mss_room_select()
  686.         if ( ROOM > 0 )
  687.         {    mos_cursor(82)                /* 時計カーソル
  688.             term_switch(1,">","READ?(y/n)>", "CCS(N)>","CCS(R)>","CCS(B)>","next>")
  689.             if ( VAL < 0 ) { mss_top_key() }
  690.             if ( VAL < 2 )
  691.             {    term_puts("MES \(ROOM)\r")
  692.             } else if ( VAL > 0 )
  693.             {    term_puts("RX \(ROOM)\r")
  694.             }
  695.         }
  696.         mss_top_key()
  697.     } else if ( VAL = 2 )
  698.     {    TITLE = "会議室移動"
  699.         syslin_puts(C_GREEN,C_MBLACK,"会議室移動:")
  700.         mos_cursor(82)                    /* 時計カーソル
  701.         term_puts("MES\r")
  702.         wait(3)
  703.         term_switch(30,">")
  704.         if ( VAL < 0 ) { mss_top_key(); return }
  705.         mss_room_select()
  706.         if ( ROOM > 0 )
  707.         {    term_puts("\(ROOM)\r")
  708.         }
  709.         mss_top_key()
  710.     } else if ( VAL = 3 )                /* モード変更
  711.     {    menu2_select(x0,y0,"★モード変更",
  712.             "N:RN   通常モード"          ,
  713.             "R:RR   リバースモード"      ,
  714.             "B:BR   ブラウスモード"      ,
  715.             "S:BRN  ブラウスモード(未読)"
  716.         )
  717.         if      ( VAL = 0 )
  718.         {    term_puts("RN\r")
  719.         } else if ( VAL = 1 )
  720.         {    menu_input("ROOM",80,x0,y0,C_CYAN,"RR : 発言番号は?")
  721.             if ( VAL < 0 )   { mss_top_key(); return }
  722.             term_puts("RR \(ROOM)\r")
  723.         } else if ( VAL = 2 )
  724.         {    menu_input("ROOM",80,x0,y0,C_CYAN,"BR : 発言番号は?")
  725.             if ( VAL < 0 ) { mss_top_key(); return }
  726.             term_puts("BR \(ROOM)\r")
  727.         } else if ( VAL = 3 )
  728.         {    term_puts("BRN\r")
  729.         }
  730.         mss_top_key()
  731.     } else if ( VAL = 5 )                /* [リターン]
  732.     {    term_puts("\r")
  733.         mss_top_key()
  734.     } else if ( VAL = 6 )                /* REF
  735.     {    term_puts("REF\r")
  736.         mss_top_key()
  737.     } else if ( VAL = 7 )                /* RO
  738.     {    term_puts("RO\r")
  739.         mss_top_key()
  740.     } else if ( VAL = 8 )                /* # number
  741.     {    ROOM = ""
  742.         menu_input("ROOM",80,x0,y0,C_CYAN,"表示したい発言番号を入力してください。")
  743.         if ( VAL < 0 )   { mss_top_key(); return }
  744.         if ( ROOM = "" ) { mss_top_key(); return }
  745.         term_puts("#\(ROOM)\r")
  746.         mss_top_key()
  747.     } else if ( VAL = 9 )                 /* Down
  748.     {    menu2_select(x0,y0,"★会議室のダウンロード",
  749.             "N:down New  未読をダウンロード"      ,
  750.             "D:down      指定の発言をダウンロード" 
  751.         )
  752.         if ( VAL = 0 )
  753.         {    term_puts("DOWN NEW\r")
  754.         } else if ( VAL = 1 )
  755.         {    menu_input("ROOM",80,x0,y0,C_CYAN,"ダウンしたい発言番号を入力してください。")
  756.             if ( VAL < 0 )   { mss_top_key(); return }
  757.             if ( ROOM = "" ) { mss_top_key(); return }
  758.             term_puts("DOWN \(ROOM)\r")
  759.         } else
  760.         {    mss_top_key()
  761.         }
  762.     } else if ( VAL = 11 )                /* Say 書き込み
  763.     {    menu2_select(x0,y0,"★会議室書き込み",
  764.             "S:SAY  発言",
  765.             "R:RE   コメントを付ける",
  766.             "D:RD   発言を削除する"
  767.         )
  768.         if ( VAL = 0 )
  769.         {    term_puts("SAY\r")
  770.         } else if ( VAL = 1 )
  771.         {    menu_input("ROOM",80,x0,y0,C_CYAN,"コメントを付ける発言番号を入力してください。")
  772.             if ( VAL < 0 )   { mss_top_key(); return }
  773.             if ( ROOM = "" ) { mss_top_key(); return }
  774.             term_puts("RE \(ROOM)\r")
  775.         } else if( VAL = 2 )
  776.         {    menu_input("ROOM",80,x0,y0,C_CYAN,"削除したい発言番号を入力してください。")
  777.             if ( VAL < 0 )   { mss_top_key(); return }
  778.             if ( ROOM = "" ) { mss_top_key(); return }
  779.             term_puts("RD \(ROOM)\r")
  780.         } else
  781.         {    mss_top_key()
  782.         }
  783.     } else if ( VAL = 12 )                /* SendMail
  784.     {    term_puts("SENDMAIL\r")
  785.     } else if ( VAL = 14 )                /* タイトル表示
  786.     {    menu2_select(x0,y0,"★発言タイトル表示",
  787.             "N:RTN  未読の発言",
  788.             "T:RT   指定の番号から",
  789.             "D:RS   指定の日付から"
  790.         )
  791.         if ( VAL < 0 )   { mss_top_key(); return }
  792.         if ( VAL = 0 )
  793.         {    CMD = "RTN";
  794.         } else if ( VAL = 1 )
  795.         {    menu_input("ROOM",80,x0,y0,C_CYAN,"発言番号は?")
  796.             if ( VAL < 0 )   { mss_top_key(); return }
  797.             if ( ROOM = "" ) { mss_top_key(); return }
  798.             CMD = "RT \(ROOM)"
  799.         } else if ( VAL = 2 )
  800.         {    DATE = ""
  801.             menu_input("DATE",80,x0,y0,C_CYAN,"日付は?(例:91年8月22日 ⇒ 910822)")
  802.             if ( VAL < 0 )   { mss_top_key(); return }
  803.             if ( DATE = "" ) { mss_top_key(); return }
  804.             CMD = "RS \(DATE)"
  805.         }
  806.         ID = ""
  807.         menu_yes_no(x0,y0,C_YELLOW,"IDは検索しますか?")
  808.         if ( VAL > 0 )    /* Yes
  809.         {    menu_input("ID",80,x0,y0,C_CYAN,"検索するIDは?")
  810.             if ( VAL < 0 )  { mss_top_key(); return }
  811.         }
  812.         term_puts("\(CMD) \(ID)\r")
  813.         mss_top_key()
  814.     } else if ( VAL = 15 )                /* RC
  815.     {    menu_input("ROOM",80,x0,y0,C_CYAN,"何番の発言まで読んだことにしますか?")
  816.         if ( VAL < 0 )   { mss_top_key(); return }
  817.         if ( ROOM = "" ) { mss_top_key(); return }
  818.         term_puts("RC \(ROOM)\r")
  819.         mss_top_key()
  820.     } else if ( VAL = 16 )                /* Break
  821.     {    /* [SHIFT]+[PF9] [PF4]    
  822.         key("\\k6504\\k6000")
  823.     }
  824. }
  825.  
  826. /*====================================================================
  827. /*    電子掲示板 (LEVEL 23)
  828. /*
  829. mss_bul_cmd {                            /* LEVEL 23
  830.     mss_sysmes()
  831.     BUL = ""
  832.     PROM = "BBS>"
  833.     CHG = "BUL\r"
  834.     menu2_select(x0,y0,"BBS 電子掲示板",
  835.         "F:Forum     フォーラムメニューに戻る",    # 0
  836.         "R:Read      掲示を読む",                # 1
  837.         "A:read All  すべての掲示を読む",        # 2
  838.         " ",
  839.         "C:Compose   掲示板に書き込む"            # 4
  840.         "D:Delete    削除",                        # 5
  841.         "4:Sendmail  メールを出す",                # 6
  842.         " ",
  843.         "6:SCAN      検索",                        # 8
  844.         "B:Break     中断(ブレーク信号送出)"        # 9
  845.     )
  846.     if ( VAL = 0 )
  847.     {    MENU_LEVEL = 21;
  848.         mss_top_key()
  849.     } else if ( VAL = 1 )                /* READ 一覧
  850.     {    CMD = "READ\r"
  851.         mss_chk_prompt()
  852.         mos_cursor(82)                    /* 時計カーソル
  853.         wait(1)
  854.         term_switch(30,">", "◆")
  855.         if ( VAL = 0 )
  856.         {    menu_input("BUL",80,x0,y0,C_CYAN,"読みたい掲示番号は?")
  857.             if ( VAL < 0 ) { mss_top_key(); return }
  858.             if ( BUL = "") { mss_top_key(); return }
  859.             term_puts("\(BUL)\r")
  860.         }
  861.         mss_top_key()
  862.     } else if ( VAL = 2 )                /* READ ALL
  863.     {    CMD = "READ ALL\r"
  864.         mss_chk_prompt()
  865.         mss_top_key()
  866.     } else if ( VAL = 4 )                /* Compolse
  867.     {    CMD = "COM\r"
  868.         mss_chk_prompt()
  869.     } else if ( VAL = 5 )                /* Delete
  870.     {    menu_yes_no(x0,y0,C_YELLOW,"すべての掲示を削除しますか?")
  871.         if ( VAL > 0 )
  872.         {    CMD = "DELETE ALL\r"
  873.         } else
  874.         {    menu_input("BUL",80,x0,y0,C_CYAN,"削除する掲示番号は?")
  875.             if ( VAL < 0 ) { mss_top_key(); return }
  876.             if ( BUL = "") { mss_top_key(); return }
  877.             CMD = "DELETE \(BUL)\r"
  878.         }
  879.         mss_chk_prompt()
  880.     } else if ( VAL = 6 )                /* Sendmail
  881.     {    term_puts("SENDMAIL\r")
  882.     } else if ( VAL = 8 )                /* 検索
  883.     {    CMD = "SCAN\r"
  884.         mss_chk_prompt()
  885.     } else if ( VAL = 9 )                /* Break
  886.     {    /* [SHIFT]+[PF9] [PF4]    
  887.         key("\\k6504\\k6000")
  888.     }
  889. }
  890.  
  891. /*====================================================================
  892. /*    データライブラリ (LEVEL 24)
  893. /*
  894. mss_lib_cmd {                            /* LEVEL 24
  895.     mss_sysmes()
  896.     PROM = "LIB>"
  897.     CHG = "E\r"
  898.     menu2_select(x0,y0,"データライブラリ",
  899.         "F:Forum    フォーラムメニューに戻る" ,
  900.         "L:Lib      ライブラリ一覧"           ,
  901.         "X:Lib <X>  指定番号のライブラリに"   ,
  902.         "D:Dir      データ一覧表示"           ,
  903.         " ",
  904.         "P:DonwLoad ダウンロード"             ,
  905.         "U:Upload   アップロード"             ,
  906.         " ",
  907.         "6:Scan     検索"                     ,
  908.         "B:Break    中断(ブレーク送出送出)"
  909.     )
  910.     if ( VAL = 0 )                        /* フォーラムコマンドに戻る
  911.     {    MENU_LEVEL = 21;
  912.         mss_top_key()
  913.     } else if ( VAL = 1)                /* ライブラリ一覧
  914.     {    term_puts("LIB\r")
  915.         mss_top_key()
  916.     } else if ( VAL = 2 )                /* 指定のライブラリに    
  917.     {    TITLE = "ライブラリ?"
  918.         mss_lib_select()
  919.         if ( LIB < 0 ) { mss_top_key(); return }
  920.         term_puts("LIB \(LIB)\r")
  921.         mss_top_key()
  922.     } else if ( VAL = 3 )                /* データ一覧    */
  923.     {    CMD = "DIR\r"
  924.         mss_chk_prompt()
  925.         mss_top_key()
  926.     } else if ( VAL = 5 )                /* ダウンロード
  927.     {    NO = ""
  928.         menu_input("NO",8,x0,y0,C_CYAN,"ダウンロードしたい番号?")
  929.         if ( VAL < 0 ) { mss_top_key(); return }
  930.         if ( NO = "" ) { mss_top_key(); return }
  931.         term_switch(1,">")
  932.         if ( VAL = 0 )
  933.         {    DL_SET = 1;
  934.             DL_FILE = ""
  935.             syslin_puts(C_GREEN,C_MBLACK,"データライブラリ:ダウンロード")
  936.             mos_cursor(82)                /* 時計カーソル
  937.             term_puts("\(NO)\r")
  938.             wait(5)
  939.             term_switch( 60,">")
  940.             if ( VAL < 0 ) { DL_SET = 0; return }
  941.             DL_SET = 0;
  942.             if ( DL_FILE ! "" )
  943.             {    /* ファイル名が設定されている    */
  944.                 FILE = ""
  945.                 COUNT = 0;
  946.                 while ( COUNT < 12 )
  947.                 {    strmid("CH",DL_FILE,COUNT,1)
  948.                     if ( CH = "" )
  949.                     {    COUNT =12;
  950.                     } else if ( CH ! " " )
  951.                     {    FILE = "\(FILE)\(CH)"
  952.                     }
  953.                     inc(COUNT)
  954.                 }
  955.                 if ( FILE ! "" )
  956.                 {    FILE = "\(_NIF_DOWN_PATH)\(FILE)"
  957.                     syslin_puts(C_GREEN,C_MBLACK, "ダウンロードファイル名 : \(FILE)")
  958.                     wait(10);
  959.                     set_cbuf(FILE)
  960.                 }
  961.             }
  962.         } else
  963.         {    mss_top_key()
  964.         }
  965.     } else if ( VAL = 6 )                /* アップロード
  966.     {    CMD = "UPLOAD\r"
  967.         mss_chk_prompt()
  968.     } else if ( VAL = 8 )                /* SCAN
  969.     {    KEY = ""
  970. #        menu_input("KEY",80,x0,y0,C_CYAN,"キーワードは?")
  971. #        if ( VAL < 0 )   { mss_top_key(); return }
  972. #        if ( KEY ! "" )
  973. #        {    KEY = "KEY:\(KEY)"
  974. #        }
  975.         DATE = ""
  976.         menu_input("DATE",80,x0,y0,C_CYAN,"日付は?(例:91年8月22日 ⇒ 910822)")
  977.         if ( VAL < 0 )   { mss_top_key(); return }
  978.         if ( DATE ! "" )
  979.         {    DATE = "DATE:\(DATE)"
  980.         } else
  981.         {    DATE = "DATE:800101"
  982.         }
  983.         CMD = "SCAN \(KEY) \(DATE)\r"
  984.         mss_chk_prompt()
  985.     } else if ( VAL = 9 )                /* Break
  986.     {    /* [SHIFT]+[PF9] [PF4]    
  987.         key("\\k6504\\k6000")
  988.     }
  989. }
  990.  
  991. /*--------------------------------------------------------------------
  992. /*    データラブラリ選択サブルーチン
  993. /*         in:    TITLE
  994. /*        out:    LIB
  995. /*
  996. mss_lib_select {
  997.     menu_select(x0,y0,TITLE,
  998.         "-ライブラリ 1-",
  999.         "-ライブラリ 2-",
  1000.         "-ライブラリ 3-",
  1001.         "-ライブラリ 4-",
  1002.         "-ライブラリ 5-",
  1003.         "-ライブラリ 6-",
  1004.         "-ライブラリ 7-",
  1005.         "-ライブラリ 8-",
  1006.         "-ライブラリ 9-",
  1007.         "-ライブラリ10-"
  1008.     )
  1009.     LIB = VAL;
  1010.     if ( LIB > -1 )
  1011.     {    inc(LIB)
  1012.     }
  1013. }
  1014. /*====================================================================
  1015. /*    フォーラム案内 (LEVEL 25)    リザーブ
  1016. /*
  1017. mss_ann_cmd {
  1018. }
  1019.  
  1020. /*====================================================================
  1021. /*    リアルタイム会議室 (LEVEL 26)
  1022. /*
  1023. mss_rtc_cmd {                            /* LEVEL 26
  1024.     mss_sysmes()
  1025.     menu2_select(x0,y0,"RTC COMMAND",
  1026.         "F:Forum command RTC 終了"            ,
  1027.         "I:Information   各種表示"            ,
  1028.         "J:/Job          自分のJOB 番号を表示",
  1029.         "U:/U            RTC 利用者を表示"    ,
  1030.         "H:/HA           ハンドルを変更する"  ,
  1031.         " ",
  1032.         "S:/SEnd         SENDを送る"          ,
  1033.         "P:/Page         ページ"              ,
  1034.         "N:Channel       チャンネル"          ,
  1035.         "B:scramBle      スクランブル"        ,
  1036.         "Q:/SQuelch      発言の抑制"          ,
  1037.         "E:/ECho         エコーバック"        ,
  1038.         " ",
  1039.         "X:/eXit         NIFTY-Serveを終了する"
  1040.     )
  1041.     if ( VAL = 0 )
  1042.     {    term_puts("/E\r")
  1043.         MENU_LEVEL = 21;
  1044.         mss_top_key()
  1045.     } else if ( VAL = 1 )                /* 各種状態表示
  1046.     {    menu2_select(x0,y0,"★RTC 状態表示",
  1047.             "S:/Status RTC 利用者の人数" ,
  1048.             "U:/UST     フォーラム利用者",
  1049.             "M:/Mchk    メールボックス"  ,
  1050.             "T:/TIme    利用時間"        ,
  1051.             "W:/Who     相手の状態"      ,
  1052.             "P:/PRofile プロフィール"
  1053.         )
  1054.         if      ( VAL = 0 ) { term_puts("/Status\r"); }
  1055.         else if ( VAL = 1 ) { NIFTY_UST(1); }
  1056.         else if ( VAL = 2 ) { term_puts("/MCHK\r"); }
  1057.         else if ( VAL = 3 ) { term_puts("/TIME\r"); }
  1058.         else if ( VAL = 4 )        /* Who 相手の状態
  1059.         {    ID = ""
  1060.             menu_input("ID",16,x0,y0,C_CYAN,"相手のJOB番号またはハンドル?")
  1061.             if ( VAL < 0 ) { mss_top_key(); return }
  1062.             if ( ID = "" ) { mss_top_key(); return }
  1063.             term_puts("/WHO \(ID)\r")
  1064.         } else if ( VAL = 5 )
  1065.         {    ID = ""
  1066.             menu_input("ID",16,x0,y0,C_CYAN,"プロフィールを見たいID?")
  1067.             if ( VAL < 0 ) { mss_top_key(); return }
  1068.             if ( ID = "" ) { mss_top_key(); return }
  1069.             term_puts("/PROF \(ID)\r")
  1070.         }
  1071.         mss_top_key()
  1072.     } else if ( VAL = 2 )                /* 自分のJOB
  1073.     {    term_puts("/JOB\r")
  1074.         mss_top_key()
  1075.     } else if ( VAL = 3 )                /* /U ユーザー表示
  1076.     {    NIFTY_RT_U()
  1077.     } else if ( VAL = 4 )                /* /HA ハンドル変更
  1078.     {    menu_input("MY_HANDLE",16,x0,y0,C_CYAN,"ハンドルは?")
  1079.         if ( VAL < 0 ) { mss_top_key();return }
  1080.         term_puts("/HA \(MY_HANDLE)\r")
  1081.     } else if ( VAL = 6 )                /* /SEND
  1082.     {    /* SEND_ID = ""
  1083.         menu_input("SEND_ID",9,x0,y0,C_CYAN,"SEND先のID?")
  1084.         if ( VAL < 0 ) { mss_top_key(); return }
  1085.         if ( ID = "" ) { mss_top_key(); return }
  1086.         MSG = ""
  1087.         menu_input("MSG",256,x0,y0,C_CYAN,"SEND メッセージ?")
  1088.         if ( VAL < 0  ) { mss_top_key(); return }
  1089.         if ( MSG = "" ) { mss_top_key(); return }
  1090.         term_puts("/SEND \(ID) \(MSG)\r")
  1091.     } else if ( VAL = 7 )                /* /PAGE
  1092.     {    /* JOB_NUM
  1093.         menu_input("JOB_NO",4,x0,y0,C_CYAN,"相手のJOB 番号は?")
  1094.         if ( VAL < 0 ) { mss_top_key(); return }
  1095.         if ( JOB = "" ) { mss_top_key(); return }
  1096.         MSG = ""
  1097.         menu_input("MSG",256,x0,y0,C_CYAN,"メッセージ?")
  1098.         if ( VAL < 0  ) { mss_top_key(); return }
  1099.         if ( MSG = "" ) { mss_top_key(); return }
  1100.         term_puts("/PAGE \(ID)\r\(MSG)\r")
  1101.     } else if ( VAL = 8 )                /* チャンネル
  1102.     {    menu2_select(x0,y0,"★チャンネル",
  1103.             "1:/MON 1    モニタ 1 "          ,
  1104.             "2:/MON 2    モニタ 2 "          ,
  1105.             "U:/UNMon    モニタ解除"         ,
  1106.             " ",
  1107.             "A:/Channel 1 チャンネル変更 (1)",
  1108.             "B:/Channel 2 チャンネル変更 (2)"
  1109.         )
  1110.         if      ( VAL = 0 ) { term_puts("/MON 1\r"); }
  1111.         else if ( VAL = 1 ) { term_puts("/MON 2\r"); }
  1112.         else if ( VAL = 2 ) { term_puts("/UNMON\r"); }
  1113.         else if ( VAL = 4 ) { term_puts("/CH 1\r"); }
  1114.         else if ( VAL = 5 ) { term_puts("/CH 2\r"); }
  1115.         else { mss_top_key(); }
  1116.     } else if ( VAL = 9 )                /* スクランブル
  1117.     {    menu2_select(x0,y0,"★スクランブル",
  1118.             "S:/SCramble   スクランブルモードに入る",
  1119.             "U:/UNScramble スクランブルを解除"
  1120.         )
  1121.         if ( VAL = 0 )
  1122.         {    CODE = ""
  1123.             menu_input("CODE",16,x0,y0,C_CYAN,"スクランブルコードは?")
  1124.             if ( VAL  < 0  ) { mss_top_key(); return }
  1125.             if ( CODE = "" ) { mss_top_key(); return }
  1126.             term_puts("/SC \(CODE)\r")
  1127.         } else if ( VAL = 1 )
  1128.         {    term_puts("/UNSC\r")
  1129.         } else
  1130.         {    mss_top_key()
  1131.         }
  1132.     } else if ( VAL = 10 )                /* 表示抑制
  1133.     {    ID = ""
  1134.         menu_input("ID",16,x0,y0,C_CYAN,"表示したくない相手のJOB番号またはハンドル?")
  1135.         if ( VAL < 0 ) { mss_top_key(); return }
  1136.         if ( ID = "" ) { mss_top_key(); return }
  1137.         term_puts("/SQ \(ID)\r")
  1138.     } else if ( VAL = 11 )                /* ECHO
  1139.     {    menu2_select(x0,y0,"★エコーバック",
  1140.             "1:/ECHO ON  エコーバックする",
  1141.             "2:/ECHO OFF エコーバックしない"
  1142.         )
  1143.         if      ( VAL = 0 ) { term_puts("/ECHO ON\r"); }
  1144.         else if ( VAL = 1 ) { term_puts("/ECHO OFF\r"); }
  1145.         else { mss_top_key(); }
  1146.     } else if ( VAL = 13 )                /* NIFTY-Serve 終了
  1147.     {    menu_yes_no(x0,y0,C_YELLOW,"    本当に終了しますか?    ")
  1148.         if ( VAL > 0 )
  1149.         {    mss_off()
  1150.         } else
  1151.         {    mss_top_key()
  1152.         }
  1153.     }
  1154. }
  1155.  
  1156. /*====================================================================
  1157. /*    オプション (LEVEL 27)
  1158. /*
  1159. mss_opt_cmd {
  1160.     mss_sysmes()
  1161.     menu2_select(x0,y0,"オプション設定",
  1162.         "F:Forum フォーラムメニューに戻る",
  1163.         "M:Menu  メニュー表示",
  1164.         "P:Page  ページ制御"  ,
  1165.         "N:Name  氏名変更"    ,
  1166.         "R:Room  会議室登録"  
  1167.     )
  1168.     if ( VAL = 0 )
  1169.     {    MENU_LEVEL = 21;
  1170.         mss_top_key()
  1171.     } else if ( VAL = 1 )                /* メニュー表示
  1172.     {    mos_cursor(82)                    /* 時計カーソル
  1173.         term_puts("1\r")
  1174.         term_switch(30,":")
  1175.         if ( VAL = 0 )
  1176.         {    menu2_select(x0,y0,"★メニュー表示",
  1177.                 "1:行う",
  1178.                 "2:行わない",
  1179.                 " ",
  1180.                 "E:変更しない"
  1181.             )
  1182.             if      ( VAL = 0 ) { term_puts("1\r"); }
  1183.             else if ( VAL = 1 ) { term_puts("2\r"); }
  1184.             else if ( VAL = 3 ) { term_puts("\r"); }
  1185.         }
  1186.         mss_top_key()
  1187.     } else if ( VAL = 2 )                /* ページ制御
  1188.     {    mos_cursor(82)                    /* 時計カーソル
  1189.         term_puts("2\r")
  1190.         term_switch(30,":")
  1191.         if ( VAL = 0 )
  1192.         {    menu2_select(x0,y0,"★ページ制御",
  1193.                 "1:行う",
  1194.                 "2:行わない",
  1195.                 " ",
  1196.                 "E:変更しない"
  1197.             )
  1198.             if      ( VAL = 0 ) { term_puts("1\r"); }
  1199.             else if ( VAL = 1 ) { term_puts("2\r"); }
  1200.             else if ( VAL = 3 ) { term_puts("\r"); }
  1201.         }
  1202.         mss_top_key()
  1203.     } else if ( VAL = 3 )                /* 氏名変更
  1204.     {    mos_cursor(82)                    /* 時計カーソル
  1205.         term_puts("3\r")
  1206.         term_switch(30,":")
  1207.         if ( VAL = 0 )
  1208.         {    HANDEL = ""
  1209.             bk = 0;
  1210.             while ( bk = 0 )
  1211.             {    menu_input("HANDLE",16,x0,y0,C_CYAN,"新しい氏名は?")
  1212.                 if ( VAL < 0 ) { HANDEL = ""; }
  1213.                 term_puts("\(HANDLE)\r")
  1214.                 term_switch(30,"確認")
  1215.                 if ( VAL = 0 )                /* 確認
  1216.                 {    menu_yes_no(x0,y0,C_YELLOW,"よろしいですか?")
  1217.                     if ( VAL > 0 )
  1218.                     {    term_puts("1\r")
  1219.                         bk = 1;
  1220.                     } else 
  1221.                     {    term_puts("2\n")        /* NG
  1222.                     }
  1223.                 } else
  1224.                 {    bk = 1;
  1225.                 }
  1226.             }
  1227.         }
  1228.         mss_top_key()
  1229.     } else if ( VAL = 4 )                /* 会議室登録
  1230.     {    syslin_puts(C_GREEN,C_MBLACK,"OPT : 会議室登録")
  1231.         mos_cursor(82)                    /* 時計カーソル
  1232.         term_puts("4\r")
  1233.         term_switch(30,":")
  1234.         if ( VAL = 0 )
  1235.         {    bk = 0;
  1236.             ROOM_BIT = 0;    /* 読む会議室のビットがセットされる
  1237.             while ( bk = 0 )
  1238.             {    _NIF_MESsub_makeObj()
  1239.                 menu_select(512,32,"会議室選択",
  1240.                     "すべての会議室",
  1241.                     D01,D02,D03,D04,D05,D06,D07,D08,D09,D10,
  1242.                     D11,D12,D13,D14,D15,D16,D17,D18,D19,D20,
  1243.                     "    実行"
  1244.                 )
  1245.                 if ( VAL < 0 )
  1246.                 {    CMD = "";
  1247.                     bk = 1;
  1248.                 } else if ( VAL = 0 )
  1249.                 {    /* mread all */
  1250.                     CMD = "ALL";
  1251.                     bk = 1;
  1252.                 } else if ( VAL < 21 )
  1253.                 {    TMP = VAL;
  1254.                     dec(TMP)
  1255.                     expr("BIT","1<<\(TMP)")
  1256.                     expr("ROOM_BIT","\(ROOM_BIT)^\(BIT)")    /* ビット反転    */
  1257.                 } else if ( VAL = 21 )
  1258.                 {    /* 実行    */
  1259.                     if ( ROOM_BIT = 0 )
  1260.                     {    CMD = ""
  1261.                     } else
  1262.                     {    ROOM = ""
  1263.                         COUNT = 0;
  1264.                         FLG = 0;
  1265.                         while ( COUNT < 20 )
  1266.                         {    expr("BIT","1<<\(COUNT)")
  1267.                             expr("TMP","\(ROOM_BIT)&\(BIT)")
  1268.                             if ( TMP ! 0 )
  1269.                             {    NO = COUNT;
  1270.                                 inc(NO)    /* 会議室番号    */
  1271.                                 if ( FLG = 0 )
  1272.                                 {    ROOM = "\(ROOM)\(NO)"
  1273.                                     FLG = 1;
  1274.                                 } else
  1275.                                 {    ROOM = "\(ROOM),\(NO)"
  1276.                                 }
  1277.                             }
  1278.                             inc(COUNT)
  1279.                         }
  1280.                         CMD = "\(ROOM)"
  1281.                     }
  1282.                     bk = 1;
  1283.                 }
  1284.             }
  1285.             term_puts("\(CMD)\r")
  1286.         }
  1287.         mss_top_key()
  1288.     }
  1289. }
  1290.  
  1291. /*********************************************************************
  1292. /*    ホームパーティ・メニュー (LEVEL 30)
  1293. /*
  1294. mss_hp_menu {
  1295.     mss_sysmes()
  1296.     if ( _HP1_ID ) { _HP1_ID = "-未定義-"; }
  1297.     if ( _HP2_ID ) { _HP2_ID = "-未定義-"; }
  1298.     if ( _HP3_ID ) { _HP3_ID = "-未定義-"; }
  1299.     if ( _HP4_ID ) { _HP4_ID = "-未定義-"; }
  1300.  
  1301.     menu2_select(x0,y0, "ホームパーティ",
  1302.         "9:top menu  トップメニューに戻る",
  1303.         "G:Guest     アクセス状況表示"    ,
  1304.         "T:Title     タイトル表示"        ,
  1305.         "N:read New  未読メッセージを読む",
  1306.         "M:Move      別のHPに移動する"    ,
  1307.         " ",
  1308.         "H:myHP      自分のHP"             ,
  1309.         "1:\(_HP1_ID)  \(_HP1_MSG)"        ,
  1310.         "2:\(_HP2_ID)  \(_HP2_MSG)"        ,
  1311.         "3:\(_HP3_ID)  \(_HP3_MSG)"        ,
  1312.         "4:\(_HP4_ID)  \(_HP4_MSG)"        ,
  1313.         " ",
  1314.         "S:Setup     利用するHPの設定"     ,
  1315.         "W:Write     書き込み"             ,
  1316.         "B:Break     中断(ブレーク信号送出)"
  1317.     )
  1318.     if ( VAL = 0 )
  1319.     {    MENU_LEVEL = 0;
  1320.         mss_top_key()
  1321.     } else if ( VAL = 1 )
  1322.     {    /* Guest */
  1323.         term_puts("GUEST\r")
  1324.         mss_top_key()
  1325.     } else if ( VAL = 2 )
  1326.     {    /* Title    */
  1327.         term_puts("TITLE\r")
  1328.         mss_top_key()
  1329.     } else if ( VAL = 3 )
  1330.     {    /* read New    */
  1331.         term_puts("READ NEW\r")
  1332.         mss_top_key()
  1333.     } else if ( VAL = 4 )
  1334.     {    /* Move    */
  1335.         mos_get("sw","x","y")
  1336.         menu_input("HP_ID",9,x,y,C_CYAN, "移動したいHPのIDは?")
  1337.         if ( VAL < 0 ) { return }
  1338.         term_puts("MOVE \(HP_ID)\r")
  1339.         mss_top_key()
  1340.     } else if ( VAL = 6 )                /* 自分のHP
  1341.     {    term_switch(1,":")
  1342.         if ( VAL < 0 )
  1343.         {    term_puts("GO HP\r");
  1344.             syslin_puts(C_GREEN,C_MBLACK,"HP:")
  1345.             mos_cursor(82)                /* 時計カーソル
  1346.             wait(3)
  1347.             term_switch(30,">")
  1348.             if ( VAL < 0 )    {    return    }
  1349.             term_puts("1\r")
  1350.             term_switch(30,":")
  1351.             if ( VAL < 0 )    {    return    }
  1352.         }
  1353.         term_puts("\r")
  1354.         mss_top_key()
  1355.     } else if ( VAL = 7 )                /* 他のHP [1]
  1356.     {    HP_ID = _HP1_ID;
  1357.         HP_PW = _HP1_PW;
  1358.         mss_hp_sub_1()
  1359.         mss_top_key()
  1360.     } else if ( VAL = 8 )                /* 他のHP [2]
  1361.     {    HP_ID = _HP2_ID;
  1362.         HP_PW = _HP2_PW;
  1363.         mss_hp_sub_1()
  1364.         mss_top_key()
  1365.     } else if ( VAL = 9 )                /* 他のHP [3]
  1366.     {    HP_ID = _HP3_ID;
  1367.         HP_PW = _HP3_PW;
  1368.         mss_hp_sub_1()
  1369.         mss_top_key()
  1370.     } else if ( VAL = 10 )                /* 他のHP [4]
  1371.     {    HP_ID = _HP4_ID;
  1372.         HP_PW = _HP4_PW;
  1373.         mss_hp_sub_1()
  1374.         mss_top_key()
  1375.     } else if ( VAL = 12 )                /* HPの設定
  1376.     {    mss_hp_set()
  1377.         mss_top_key()
  1378.     } else if ( VAL = 13 )
  1379.     {    term_switch(1,":")
  1380.         if ( VAL = 0 )
  1381.         {    MSG = "ここでは書き込みできません"
  1382.             host_err()
  1383.             mss_top_key()
  1384.         } else
  1385.         {    term_puts("WRITE\r")
  1386.         }
  1387.     } else if ( VAL = 14 )                /* Break
  1388.     {    /* [SHIFT]+[PF9] [PF4]    
  1389.         key("\\k6504\\k6000")
  1390.     }
  1391. }
  1392.  
  1393. mss_hp_set {
  1394.     if ( _HP1_ID ) { _HP1_ID = "-未定義-"; }
  1395.     if ( _HP2_ID ) { _HP2_ID = "-未定義-"; }
  1396.     if ( _HP3_ID ) { _HP3_ID = "-未定義-"; }
  1397.     if ( _HP4_ID ) { _HP4_ID = "-未定義-"; }
  1398.     menu2_select(x0,y0,"★設定するHPは?",
  1399.         "1:\(_HP1_ID)  \(_HP1_MSG)",
  1400.         "2:\(_HP2_ID)  \(_HP2_MSG)",
  1401.         "3:\(_HP3_ID)  \(_HP3_MSG)",
  1402.         "4:\(_HP4_ID)  \(_HP4_MSG)"
  1403.     )
  1404.     if ( VAL = 0 )
  1405.     {    HP_ID  = _HP1_ID;
  1406.         HP_PW  = _HP1_PW;
  1407.         HP_MSG = _HP1_MSG;
  1408.         mss_hp_set_sub()
  1409.         if ( VAL < 0 ) { return }
  1410.         _HP1_ID  = HP_ID;
  1411.         _HP1_PW  = HP_PW;
  1412.         _HP1_MSG = HP_MSG;
  1413.     } else if ( VAL = 1 )
  1414.     {    HP_ID  = _HP2_ID;
  1415.         HP_PW  = _HP2_PW;
  1416.         HP_MSG = _HP2_MSG;
  1417.         mss_hp_set_sub()
  1418.         if ( VAL < 0 ) { return }
  1419.         _HP2_ID  = HP_ID;
  1420.         _HP2_PW  = HP_PW;
  1421.         _HP2_MSG = HP_MSG;
  1422.     } else if ( VAL = 2 )
  1423.     {    HP_ID  = _HP3_ID;
  1424.         HP_PW  = _HP3_PW;
  1425.         HP_MSG = _HP3_MSG;
  1426.         mss_hp_set_sub()
  1427.         if ( VAL < 0 ) { return }
  1428.         _HP3_ID  = HP_ID;
  1429.         _HP3_PW  = HP_PW;
  1430.         _HP3_MSG = HP_MSG;
  1431.     } else if ( VAL = 3 )
  1432.     {    HP_ID  = _HP4_ID;
  1433.         HP_PW  = _HP4_PW;
  1434.         HP_MSG = _HP4_MSG;
  1435.         mss_hp_set_sub()
  1436.         if ( VAL < 0 ) { return }
  1437.         _HP4_ID  = HP_ID;
  1438.         _HP4_PW  = HP_PW;
  1439.         _HP4_MSG = HP_MSG;
  1440.     }
  1441. }
  1442.  
  1443. mss_hp_set_sub {
  1444.     if ( HP_ID = "-未定義-" ) { HP_ID = ""; }
  1445.     menu_input("HP_ID",9,x0,y0,C_CYAN,"HP設定:IDは?")
  1446.     if ( VAL < 0 )  { return (-1); }
  1447.     if ( HP_ID = "" ) { return (0); }    /* 登録解除    
  1448.  
  1449.     menu_input("HP_PW",9,x0,y0,C_CYAN,"HP設定(ID:\(HP_ID)):パスワードは?")
  1450.     if (   VAL < 0 ) { return (-1); }
  1451.     if ( HP_PW = "" ) { return (-1); }
  1452.  
  1453.     menu_input("HP_MSG",20,x0,y0,C_CYAN,"HP設定(ID:\(HP_ID)):タイトルメッセージ?")
  1454.     if (   VAL < 0 ) { return (-1); }
  1455.     return    (0);
  1456. }
  1457.  
  1458. mss_hp_sub_1 {        /* in:HP_ID, HP_PW
  1459.     syslin_puts(C_GREEN,C_MBLACK,"HP:")
  1460.     mos_cursor(82)                    /* 時計カーソル
  1461.     if ( HP_ID = "-未定義-" ) { return; }
  1462.     term_switch(1,"HP>",":")
  1463.     if ( VAL = 0 )
  1464.     {    /* HP>    */
  1465.         term_puts("MOVE \(HP_ID)\r")
  1466.     } else
  1467.     {    if ( VAL < 0 )
  1468.         {    term_puts("GO HP\r");
  1469.             wait(3)
  1470.             term_switch(30,">")
  1471.             if ( VAL < 0 )    {    return    }
  1472.             term_puts("1\r")
  1473.             term_switch(30,":")
  1474.             if ( VAL < 0 )    {    return    }
  1475.         }
  1476.         term_puts("\(HP_ID)\r")
  1477.         term_switch(30,"◆パスワードが間違っています◆","パスワード")
  1478.         if ( VAL < 0 )    {    return    }
  1479.     }
  1480.     term_switch(30,":")
  1481.     if ( VAL < 0 )    {    return    }
  1482.     term_puts("\(HP_PW)\r")
  1483. }
  1484.  
  1485. /*********************************************************************
  1486. /*    サービスメニュー (LEVEL 40)
  1487. /*
  1488. mss_service_menu {
  1489.     mss_sysmes()
  1490.     menu2_select(x0,y0,"サービス",
  1491.         "9:top menu  トップメニューに戻る" ,
  1492.         "F:FIND      検索サービス"         ,
  1493.         "B:Bill      課金を調べる"         ,
  1494.         "M:Member    会員情報"             ,
  1495.         "P:Phone     FENICS AP 電話番号一覧"
  1496.     )
  1497.     if ( VAL = 0 )
  1498.     {    MENU_LEVEL = 0;
  1499.         mss_top_key()
  1500.     } else if ( VAL = 1 )                /* FIND
  1501.     {    KEY = ""
  1502.         menu_input("KEY",16,x0,y0,C_CYAN,"検索したいキーワードは?")
  1503.         if ( VAL < 0 ) { mss_top_key(); return }
  1504.         if ( KEY = "") { mss_top_key(); return }
  1505.         term_puts("FIND \(KEY)\r")
  1506.     } else if ( VAL = 2 )                /* 課金表示
  1507.     {    term_puts("GO BILL\r")
  1508.         wait(1)
  1509.         menu_yes_no(x0,y0,C_CYAN,"利用状況を表示しますか?")
  1510.         if ( VAL > 0 )
  1511.         {    term_puts("1\r")
  1512.             wait(1)
  1513.             mos_cursor(82)                /* 時計カーソル
  1514.             term_switch(30,">")
  1515.             if ( VAL = 0 )
  1516.             {    menu_yes_no(x0,y0,C_CYAN,"日毎情報を表示しますか?")
  1517.                 if ( VAL > 0 )
  1518.                 {    term_puts("\r")
  1519.                     wait(1)
  1520.                 }
  1521.             }
  1522.         }
  1523.         mss_top_key()
  1524.     } else if ( VAL = 3 )                /* 会員情報
  1525.     {    term_puts("GO MEMBER\r")
  1526.     } else if ( VAL = 4 )                /* FENICS AP 電話番号一覧
  1527.     {    term_puts("GO PHONE\r")
  1528.     }
  1529. }
  1530.  
  1531.